package com.me.libgdx_test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.utils.Drawable;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;

public class ClassReferenceDrawable {
	public int player_class, player_level, player_race;
	private ClassUnlockablePrototypes unlock_prototype;
	private ClassLogDisplay logger;
	public boolean initialized = false;
	ClassReferenceDrawable(int player_class, int player_level, int player_race, ClassUnlockables unlockable_object){
		this.player_class = player_class;
		this.player_level = player_level;
		this.player_race = player_race;
		logger = new ClassLogDisplay("ClassReferenceDrawable");
		logger.print("Reference Drawable Init");
		unlock_prototype = unlockable_object.get_unlockable_prototypes();
		set_upgrade_objects();
		set_spell_objects();
		set_class_objects();
		set_icon_objects();
		initialized = true;
	}
	/*class NameImageDescriptionAdvice{
		private String Name,Image,Description,Advice,level_floor;
		NameImageDescriptionAdvice(String Name, String Image, String Description, String Advice){
			this.Name = Name;
			this.Image = Image;
			this.Description = Description;
			this.Advice = Advice;
			this.level_floor = "";
		}
		//You need a floor for levels too, so we need to overload things here
		NameImageDescriptionAdvice(String Name, String Image, String Description, String Advice, String level_floor){
			this.Name = Name;
			this.Image = Image;
			this.Description = Description;
			this.Advice = Advice;
			this.level_floor = level_floor;
		}
	}*/

	//public Drawable default_dialog = new TextureRegionDrawable(new TextureRegion(new Texture("data/dialog_box.png")));
	
	public ClassDungeonMods[] modObjects = {
			
			//mburn, poison, MRnorm, MRplus, PRnorm, PRplus, forget, blind, weakness, magicalAttack, undead, coward, banish, fStrike, static
			new ClassDungeonMods("Mana Burn","mod_mburn.png","Prevents the player from regenerating mana when shroud " +
					"is uncovered. Contracted when attacked by enemy. Cured with a mana potion or a level up.",
					"Try to contract only when you are about to level up. Don't worry as much about it if you are a physical " +
					"attacker and don't use magic much.",0,true),
			new ClassDungeonMods("Poison","mod_poison.png",
					"Prevents the player from regenerating health when shroud is uncovered. Contracted when attacked by enemy. " +
					"Cured with a health potion or a level up.","Try to contract only when you are about to level up. Don't " +
					"worry as much about it if you are a magic user and possess an attack spell.",1,true),
			new ClassDungeonMods("+25% Magic Resistance","mod_mr25.png","Grants +25% magic resistance to enemies, " +
					"making spells less effective.","Attack physically to avoid wasting mana on this type of enemy.",2,false),
			new ClassDungeonMods("+50% Magic Resistance","mod_mr50.png","Grants +50% magic resistance to enemies, " +
					"making spells less effective.","Magic will do next to nothing against this type of enemy. Use physical " +
					"attacks, and boost your own strength with magic instead.",3,false),
			new ClassDungeonMods("+25% Physical Resistance","mod_pr25.png","Grants +25% physical resistance to " +
					"enemies, making attacks less effective.","Attack with magic to avoid wasting mana on this type of enemy.",4,false),
			new ClassDungeonMods("+50% Physical Resistance","mod_pr50.png","Grants +50% physical resistance to " +
					"enemies, making attacks less effective.","Physical attacks will do next to nothing against this type of " +
					"enemy. Use magic and poison to make sure that the enemy doesn't recover",5,false),
			new ClassDungeonMods("Amnesia","mod_forgetfulness.png","Reduces the effectiveness of player's spells " +
					"by 25%. Contracted when attacked by enemy. Cured with a mana potion or a level up.","A slight inconvenience " +
					"when contracted. Makes your magic slightly weaker",6,true),
			new ClassDungeonMods("Blind","mod_blind.png","Increases the chances of the player's attack missing " +
					"it's mark by 10%. Contracted when attacked by enemy. Cured with a health potion or a level up.","Annoying " +
					"especially when your health is low. Be careful with first strike, as having both can give your hero a 10% " +
					"chance to fail the first strike and die.",7,true),
			new ClassDungeonMods("Weakness","mod_weakness.png","Reduces the player's attack by 25%. Contracted " +
					"when attacked by enemy. Cured with a health potion or a level up.","A slight inconvenience unless you are " +
					"pitted against enemies with large amounts of health.",8,true),
			/*new ClassDungeonMods("Poisoned Enemy","mod_epoison.png","Appears when the player poisons an enemy. " +
					"Prevents an enemy from regenerating health until it is attacked again.","Poison enemies when your health " +
					"is low and you need to uncover shroud to avoid dying.",9,true),*/
			new ClassDungeonMods("Magic Attack","mod_mattack.png","Signifies that the enemies attacks will be " +
					"lessened by magic resistance instead of physical resistance. If not present, enemy has a physical attack.",
					"Pick a class/god that will most benefit you depending on how many magic users are present in the level.",9,false),
			new ClassDungeonMods("Undead","mod_undead.png","Signifies that the enemy is open to attack bonuses " +
					"and curses pertaining to the undead. If not present, the enemy is alive.","Pick a class/god that will most " +
					"benefit you depending on how many undead are present in the level.",10,false),
			/*new ClassDungeonMods("Extra Life","mod_exlife.png","Signifies that the player has an extra life ready " +
					"to be used.","Great way to protect yourself from making mistakes, or dying on purpose to get class and god benefits.",12,false),*/
			new ClassDungeonMods("Coward","mod_coward.png","Signifies that the enemy will flee to a random part " +
					"of the dungeon whenever it is attacked.","Attack with magic. If you have to hit them, wait until it is a gauranteed kill.",11,false),
			new ClassDungeonMods("Banish","mod_banish.png","Signifies that the enemy will banish the player to " +
					"a random unoccupied location whenever it is attacked.","Never physically attack an enemy with banish at the beginning " +
					"of a dungeon. They can easily send you to a far corner of the dungeon where you will probably die.",12,false),
			new ClassDungeonMods("First Strike","mod_fstrike.png","Signifies that the player/enemy has a first " +
					"strike on the next attack.","Useful at avoiding damage if an enemy is close to dying.",13, false),
			new ClassDungeonMods("Static","mod_static.png","Prevents the player from seeing enemy levels or " +
					"attack predictions. Contracted when attacked by enemy. Cured with mana potion or level up.","Try to only attack enemies " +
					"with static right before you level up. Attacking carelessly with the static ailment can easily cause your death.",14,true),
			new ClassDungeonMods("Blood","glyph_blood.png","Doubles mana regeneration from shroud. Prevents health regeneration from shroud.",
					"Useful with pure magic users. Bad idea with fighters",15,false),
			new ClassDungeonMods("Extra Life","mod_exlife.png","Signifies that the player has an extra life ready " +
					"to be used.","Great way to protect yourself from making mistakes, or dying on purpose to get class and god benefits.",16,false),
			new ClassDungeonMods("Chains","glyph_chains.png","Signifies that the player is immune to Banish and Coward next attack.",
					"Great way to prevent frustrating enemies from running away or sending you places.",17,false),
			new ClassDungeonMods("Mind","glyph_mind.png","Doubles health regeneration from shroud. Prevents mana regeneration from shroud.",
					"Useful for fighters. Bad idea for mana users",18,false),
	};
	
	public String[] enemy_names = {
			"Juan",
			"Lucas",
			"Daniel",
			"William",
			"Ethan",
			"Liam",
			"Jacon",
			"Logan",
			"Alex",
			"Carter",
			"Jimmy",
			"Charles",
			"George",
			"Pierre",
			"Rufus",
			"Tyrone",
			"Hubert",
			"Phil",
			"Jean",
			
			"Emma",
			"Sofia",
			"Olivia",
			"Emily",
			"Alice",
			"Maya",
			"Gabby",
			"Mia",
			"Jada",
			"Barb",
			"Violet",
			"Marge",
			"Amy",
			"Chloe",
			"Dianne",
			"Peach",
			"Ling-Ling",
			"Sarah",
			"Nichole",
			"Eunice"
	};
	
	public ClassDungeonPlayerClass[] classObjects;
	
	public boolean class_unlocked(int id){
		return unlock_prototype.get_factory().get_class_unlocked(id);
	}
	
	public void set_class_objects(){
		//Alright... This shit is going to get complicated...
		ArrayList<ClassDungeonPlayerClass> class_holder = new ArrayList<ClassDungeonPlayerClass>();
		
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(20),"Acolyte","class_heroacolyte.png",
				"-25% physical resistance. +25% magical resistance. Double piety gained and lost from actions. Can see all altar locations.",
				"Try to find a god to worship as soon as possible to maximize this character's effectiveness. Try to focus on gods who increase" +
				" your spell power as this character does less physical damage than other characters.",class_unlocked(class_holder.size()),
				new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{-.25f,.25f,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,"altar"),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(18),"Alien","class_heroalien.png",
				"Starts with Teleport spell. Teleport costs 6 mana. Any enemies that are teleported are poisoned as well. Both potions restore mana 100%.",
				"The Alien works best by attacking stronger enemies and then teleporting them out of the way until later. Try attacking enemies " +
				"that you would have to teleport anyways to uncover deeper portions of the dungeon.",class_unlocked(class_holder.size()),
				new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(1f,1f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"Teleport", 6, "Teleport","","teleport_poison","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		/*class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(30),"Apostle","class_heroapostle.png",
                "Used shops can be converted into +5 piety. Used shops can be converted into totems. Clicking on gold converts one gold to one piety. "
                + "Half attack increase per level. +25% health increase per level", 
      	        "Like a slightly more conplicated monk. Find the mind glyph and pick the dwarf race for more staying power.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,10,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));*/
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(25),"Archeologist","class_heroarcheologist.png",
				"Begins with EndWall spell. Collecting 5 blood pools gives extra life. +1 gold when EndWall is used.",
				"A very good all-around character with the added effect of regenerating lives from blood pools. Try " +
				"to save as many blood pools as you can until the final boss to give yourself an advantage where it counts.",class_unlocked(class_holder.size()),
				new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "EndWall","","","","1_gold_endwall"),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("","5_life"),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(8),"Assassin","class_heroassassin.png",
		        "Begins with Poison spell. 2% chance to cure ailments from uncovering shroud. 1 hit KO with all monsters of lower lvl.",
			    "Use the poison spell to your advantage when fighting with this class by attacking enemies and then poisoning them before " +
			    "they can regenerate. Save lower level enemies and shroud for when you really need them towards the end of the dungeon.",class_unlocked(class_holder.size()),
			    new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, .02f, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "Poison","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("1_hit_ko_lower"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(23),"Beast Master","class_herobeastmaster.png",
		        "Begins with the Grumpkin enchantment. All grumpkins summoned are level 2. Immune to Poison.",
			    "Use the grumpkin spell to quickly level up your character to level 10. After that, totems can be used to " +
			    "increase your attack for the final boss.",class_unlocked(class_holder.size()),
			    new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Poison"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "Grumpkin","","","","grumpkin_upgrade"),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(14),"Berserker","class_heroberserker.png",
		        "+25% damage vs. higher level monsters. -50% magic damage taken. +50% attack. 1 less spell on the map. +2 mp cost for all spells.",
			    "Use mainly in dungeons that have a high ratio of magic users. Try to stay away from using magic excessively due to its increased " +
			    "cost.",class_unlocked(class_holder.size()),
			    new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,.5f},
								new float[]{0,.5f,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"all", 2, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, -1, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("25%_atk_higher"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(30),"Blade Master","class_heroblademaster.png",
		        "+45% attack with full health. -30% attack when damaged. Attack items give +5 attack. Immune to weakness. Cannot be banished.", 
			    "Keep your health low to take advantage of your increased attack. Find the Heal or KillProtect spells",class_unlocked(class_holder.size()),
			    new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Weakness","Banish"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("+5_atk",""),
						new ClassPlayerAttackMod("45%_full_health"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(6),"Blood Mage","class_herobloodmage.png",
		        "Begins with Blood spell. Mana potions give 100% refill. Heal 10% health from blood pools.",
			    "Make sure to use the elf race whenever this class is chosen. A clever combination of the " +
			    "blood and heal spells can render this character almost invincible.",class_unlocked(class_holder.size()),
			    new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,1f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "Blood","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("","heal_10%"),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(16),"Boxer","class_heroboxer.png",
                "Hits raise attack bonus by 12%. Steps lower attack by 1/2% down to -50%. Can see monsters of equal or lower level.",
      	        "Just keep attacking. As there is no limit to how much attack power this character can gain, the boxer has the ability " +
      	        "to become one of the best players in the game if used correctly.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,"enemy_lower"),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("12%_hit_atk_bonus"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod("lower_atk_1/2"))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(21),"Chef","class_herochef.png",
                "+10% chance of turning killed enemy into a potion. Potion use has a 10% chance of giving +1 experience per lvl.",
      	        "A very good all-around character. Since all benefits are based on chance, a normal dungeon crawling strategy is " +
      	        "recommended. Try to avoid choosing a race that already generates potions when spells are destroyed, since potions " +
      	        "are granted automatically.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"10%_1_exp",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("10%_enemy_potion"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(9),"Crusader","class_herocrusader.png",
                "Monster kills give 10% damage bonus next hit. Immune to poison and mana burn. Deals 300% damage to next monster after death.",
      	        "Chain kills so that your bonus can keep rising. Remember that by dying with an extra life, this character receives +300% " +
      	        "attack as well as his normal chain bonus.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Mana Burn","Poison"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("300%_death","10%_atk_kill"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(11),"Dragon Hunter","class_herodragon.png", 
                "+100% starting health. 2x health increase each level. Increased sight radius. Attack spells prohibited.",
                "Try to not let your increased sight radius come into play too early in the game as you may run out of shroud " +
                "towards the end. Don't worry about the lack of attack spells. This class's increased health more than compensates " +
                "for the deficiency.",class_unlocked(class_holder.size()),
                new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{20,5,5}, new int[]{20,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 2, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","attack",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(19),"Earl","class_heroearl.png",
                "+25% magical attack. Steals one gold from kill per monster level. +5 starting mana.", 
      	        "A good all-around character specializing in magic. Try acquiring the klondike spell early.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,15,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(.25f,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("gold_enemy_death"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(29),"Escape Artist","class_heroeartist.png",
                "Cannot die with full health. Immune to banish and static. Recovers 10% max mana on monster death. Potions 30% effective.",
      	        "This character's strategy revolves around maintaining full health when attacking. Keeping your max HP as low as possible to " +
      	        "make up for the reduced potion effectiveness is a great way to maximize this hero's abilities. If there were some way to " +
      	        "reduce his max health to 1, he would be invincible...",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Banish","Static"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.30f,.30f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("10%_max_mana","cant_die_full_health"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(0),"Fighter","class_herobase.png",
                "+1 experience per killing blow. Survives first killing blow. 33% more items on map.",
      	        "Finding the grumpkin spell will quickly max out this character's stats. After you reach level 10, the " +
      	        "level boss(es) should be relatively easy to find and defeat.",class_unlocked(class_holder.size()),
      	        new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{"Extra Life"}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, .33f, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("1_exp_death"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(32),"Forrester","class_heroforrester.png",
                "Increased sight radius. Immune to poison and blind. Exploring area around enemy gives +20% doubleHit/dodge.", 
      	        "There is a reason that this character is one of the last classes to unlock. Be careful with how you use him though, as " +
      	        "the increased sight radius may remove the dungeon shroud too quickly.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Poison","Blind"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 2, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","+20%_dbl_dodge",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(4),"Gambler","class_herogambler.png",
                "Attacks with 70%-110% strength. Any spells trashed will raise the upper strength limit by 20% as well as normal spell bonus. " +
                "Exploring around enemies gives first strike. Immune to Blindness.",
      	        "This character has a build entirely based on luck, so be careful to not overestimate his strength. Use the human race to raise " +
      	        "his lower bound attack while simultaneously increasing his upper range. A gauranteed first strike is also useful for those who " +
      	        "don't like to gamble.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Blind"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{-.25f,.25f,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","first_strike",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","upper_bound","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("gambler"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(9),"Harpie","class_heroharpie.png",
                "Starts with EndWall spell. -50% physical damage. -50% physical damage taken. Immune to poison and mana burn. " +
                "+2 mana per kill. 10% death gaze. Converts spells into +5% death gaze.",
      	        "Great on levels with many enemies with high health. Not as great on levels with many enemies that have the weakness " +
      	        "ailment or high attack.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Poison","Mana Burn"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{-.5f,0,0},
								new float[]{.5f,0,0}, 0, 0, 1, .1f, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "EndWall","5%_gaze","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("2_mana_enemy_death"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(26),"Jester","class_herojester.png", 
                "-50% attack. +20% dodge rate. Attacks poison enemy.", 
      	        "A hit and run strategy is recommended with this class. Try to increase the character's resistance/attack to make " +
      	        "up for his low attack.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{"Poison"}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,-.5f},
								new float[]{0,0,0}, 0, 0, 1, 0, .2f, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(29),"Juggler","class_herojuggler.png",
                "Immune to all ailments. +30% magic attack. No altars.",
      	        "A great all-around character. The lack of altars may put him at a disadvantage in some dungeons. Particularily " +
      	        "useful in the later levels when most monsters fight with status ailments.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Mana Burn","Poison","Amnesia","Blind","Weakness","Static"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(.3f,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, -5, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(23),"King","class_heroking.png",
                "+25% magical resistance. Collects 4 gold from every blood pool. 50% discount at shops.",
      	        "Useful if there are no totem or grumpkin spells on the ground. Try to increase your gold " +
      	        "production by as much as possible with shops and level upgrades.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,.25f,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, .5f, 0, 0),
						new ClassPlayerPickupMod("","4_gold"),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(31),"Lich","class_herolich.png",
                "No starting stat increases per lvl. Blood pools increase random stats with each lvl.",
      	        "Attack enemies at your own level in order to acquire as many blood pools as possible before leveling up. Feel free " +
      	        "to use potions in the beginning of the game to overshadow this classes deficiencies as the lich becomes very powerful " +
      	        "by the time you reach the dungeon boss.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{0,0,0}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("","random_increase"),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(26),"Marauder","class_heromarauder.png",
                "+100% attack. First Strike. Attack angers enemy increasing its strength by 25%. All enemies cowards.",
      	        "A challenging class to play with. Make sure that you have enough attack power to defeat an enemy on the first try, " +
      	        "or risk a huge increase in attack as you try to find the enemy again. Choose the troll or human races. Try to find " +
      	        "a god that dislikes you being hit or dodging attacks.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{"First Strike"}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,1},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("enemy_stronger"),
						new ClassPlayerEnemyMod("Coward"),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(21),"Minuteman","class_herominute.png",
                "-16% attack. +8% attack for all discovered alive enemies.",
      	        "Extremely powerful class if the grumpkin spell is found. Try to attack as high a level as possible at the " +
      	        "start to leave lesser enemies alive while gaining the experience bonus from more seasoned enemies.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,-.16f},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "+8%_atk","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(5),"Monk","class_heromonk.png",
                "-50% damage. -50% physical and magical damage taken. Monster kills give first strike.",
      	        "Concentrate on health or attack with this character. A Totem spell with the dwarf race should maximize this class's potential.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,-.5f},
								new float[]{0,0,.5f}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("kill_first_strike"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(7),"Paladin","class_heropaladin.png",
                "Begins with Heal spell. Killing a magical enemy restores 20% health. -25% magical damage taken.", 
      	        "A power class used in a magic users dungeon. An average class against non-magic enemies.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,.25f,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "Heal","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("magic_heal"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(1),"Peasant","class_heropeasant.png", 
                "-50% attack. -50% magic attack. 50% store discount. 4x ending bonus score.",
      	        "Used mostly for bragging rights than anything else. Quickly level up your dungeons when the current level is a bit too tough.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,-.5f},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 4),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(-.5f,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, .5f, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(6),"Priest","class_heropriest.png",
                "+2 health per level. Health potions heal 100%. Deals 200% damage to undead.",
      	        "Pick the human class and find the First Strike spell as soon as possible to be at an advantage against undead " +
      	        "foes. A human or gargoyle race is recommended.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{12,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(1f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("+200%_undead"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(35),"Princess","class_heroprincess.png",
                "Begins with the Affinity spell. Has a small chance to summon extra special shops...",
      	        "Invest in health or mana to make sure that the affinity spell can be used on as many blood pools as possible. " +
      	        "Something special might happen when used enough at higher levels...",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "Affinity","","affinity_shops","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("","","",""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(20),"Prog Master","class_heroprogrammer.png",
                "All enemies gain a level. All enemies gain a life. +2 stores. All store items 1 gold. 8x ending bonus.",
      	        "Find the shops quickly... Every level will have 3 more bosses and no level 1 enemies...",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 8),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(2, 0, 0, 0, 1, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod("stronger","life"),
						new ClassPlayerStepMod(""))));
		/*class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(30),"Psychic","class_heropsychic.png",
        "Half Shroud. +25% Mag Attack. -25% Phys Attack. Shops twice as expensive. Potions 100% effective. Health potions restore mana instead of health.", 
	        "Pick the elf or pixie classes. Look at the level. Quit if there are no attack spells on the map.",class_unlocked(class_holder.size()),
	      new ClassPlayerClassModifiers(
				modObjects,
				new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
				new ClassPlayerAttrMod(new int[]{10,10,5}, new int[]{10,10,10}, new float[]{0,0,0},
						new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
				new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
				new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
				new ClassPlayerSpellMod(0,"", 0, "","","","",""),
				new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
				new ClassPlayerPickupMod("",""),
				new ClassPlayerAttackMod(""),
				new ClassPlayerEnemyMod(""),
				new ClassPlayerStepMod(""))));*/
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(18),"Racer","class_heroracer.png",
                "Manaspark uses half mana. +5 mana per level. Mana potions restore 100%.",
      	        "Pick the elf or pixie races. Try to find shops that increase your shroud regeneration so that your MP potions don't " +
      	        "have to be used until the end.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,10,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,1f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","","mana_spark_cheap"),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("","","",""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		/*class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(22),"Raider","class_heroraider.png",
                "Shops can be pillaged for extra attack. First Strike. Half mana increase per level. One less spell in level.",
      	        "Pick the human race. Destroy all the shops that don't have attack or health increases.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,10,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,1f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("","","",""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));*/
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(28),"Robot","class_herorobot.png",
                "+3 health per level. +50% physical/magical resistance. Immune to all ailments. Potions do not restore health/mana. " +
                "Potions give 5 gold per level. All attacks require 1 gold.",
      	        "A very powerful class. Find the Klondike spell and save your potions until your character is a high enough level " +
      	        "to maximize their returns. Remember that your potions don't restore health/mana, so shroud should be used in the " +
      	        "most conservative way possible.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Mana Burn","Poison","Amnesia","Blind","Weakness","Static"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{13,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,.5f}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(0,0,3,3,"5_gold_lvl",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("need_gold"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(0),"Rogue","class_herorogue.png",
                "First Strike. +10% double hit rate. +10% dodge rate. +50% damage. -5 health per level.",
      	        "Choose the human race to build your attack as high as possible. Make sure that your first strike is " +
      	        "effectively used. Be very careful on levels with enemies that also have first strike.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{"First Strike"}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{5,5,5}, new int[]{10,10,10}, new float[]{0,0,.5f},
								new float[]{0,0,0}, .1f, .1f, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		/*class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(30),"Schizo","class_heroschizo.png",
                "Shops can be torched for +3 health/attack. Half Shroud. Permanent static status.", 
      	        "You know what you're doing? Good.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,10,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));*/
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(19),"Scientist","class_heroscientist.png",
                "+5 Health for each living enemy on map. Health does not increase with level. +2 mana increase per level. Immune to poison.", 
      	        "Extremely powerful class if the grumpkin spell is found. Try to attack as high a level as possible at the start to leave " +
      	        "lesser enemies alive while gaining the experience bonus from more seasoned enemies.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Poison"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{0,7,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "+5_health","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(13),"Shaman","class_heroshaman.png",
                "Begins with totem enchantment. Totems also add +3 health. +25% attack vs. living enemies. -25% attack vs. undead.",
      	        "Look at the enemy descriptions for the level before using this character due to his poor performance against undead foes. " +
      	        "If you have to go against the undead make sure that you finish them off with an attack in order to build the most totems possible.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "Totem","","","","totem_upgrade"),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("-25%_undead","+25%_living"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(12),"Sorcerer","class_herosorcerer.png",
                "Heals 1.5 health per 1 mana used. +5 mana. Does 1 magic damage per level when hit.",
      	        "Attack enemies until your health is almost gone. Use any magic to bring your health back up. Repeat. " +
      	        "Choose the pixie or elf races. Find Mana Spark spell.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,15,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","","3/2_mana_used"),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("mgc_atk_returned"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(30),"Soul Eater","class_herosouleater.png", 
                "No starting attack or mana. No attack or mana increase with levelup. Mana items converted to health items. " +
                "+1 Attack each time enemy is hit by player.",
      	        "Only use on levels with many enemies with large amounts of health. The banning of all spells makes the gargoyle " +
      	        "or dwarf races a must.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,0,0}, new int[]{10,0,0}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,6,0,"","mana=>health"),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("mana=>health",""),
						new ClassPlayerAttackMod("+1_atk"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(22),"Sultan","class_herosultan.png",
                "Every physical attack adds 2.5x current gold to damage. Drains 1/2 gold every physical attack. +20 gold each enemy death. " +
                "Immune to Poison, Weakness, Blind, and Amnesia",
      	        "Choose the elf race to try to raise your mana as much as possible. Finding first strike and any attack spell" +
      	        " should make the dungeon relatively easy.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Poison","Weakness","Blind","Amnesia"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("x2.5_gold_dmg","+20_gold_enemy_death"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(22),"Swindler","class_heroswindler.png",
                "Adds difference between mana and health to attack. -5 health Increase per lvl. +5 mana Increase per lvl.",
      	        "Invest in the human race to make sure that you can get as much power out of your first attack as possible. Find first strike spell",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{5,10,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("mana_health_difference"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(21),"Tempest","class_herotempest.png",
                "+80% magic damage. 10% magic damage returned as mana. Spells use 8% of max health down to 1 health.",
      	        "Make sure that you don't lose your health too quickly by unnesessarily casting spells. Try not to use " +
      	        "the blood spell as the heal and convert spells are both reduced in efectiveness.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(.8f,"", 0, "","","10%_dmg_mana","","spells_8%_health"),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(3),"Thief","class_herothief.png",
                "+50% damage against monsters of same level. Can see monsters of equal and lower levels. All potions restore health and mana.",
      	        "Choose the dwarf or elf classes for this class as all potions heal 100%. Try fighting the more difficult enemies " +
      	        "when your class's level is equal to theirs to enjoy the attack bonus.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"both_potions",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,"enemy_lower"),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, .33f, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("50%_atk_same"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(4),"Tinkerer","class_herotinker.png",
                "Map has 6 extra shops. 20% discount at stops. Steals one gold from kill per monster level.",
      	        "This class becomes more and more convenient once the value of dungeon gold is increased and shops start selling " +
      	        "more valueable items. Try to find the Klondike or Converter spells early in the game as they play to this characters strengths.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(6, 0, 0, 0, .2f, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("gold_enemy_death"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(9),"Transmuter","class_herotransmuter.png",
        		"Begins with EndWall spell. Gains 2 health per lvl for wall destruction. EndWall costs 1 mana. No health regen. Banish Immune.",
      	        "A very tricky class, as both shroud and walls both need to be used conservatively in order to make it to the end of the dungeon." +
      	        " Find the blood spell to speed up your mana regeneration as your health doesn't regenerate anyways.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Banish"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(0, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"EndWall", 1, "EndWall","","","","1_gold_endwall"),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(23),"Traveller","class_herotraveller.png",
        		"Every physical attack adds 1.5x current mana to damage. Drains 1/2 mana every physical attack. Immune to Static, Mana Burn, and Banish", 
      	        "Choose the elf race to make sure that your first attack is as powerful as possible. Finding a blood or first strike spell " +
      	        "will make make you extremely powerful",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{"Static","Mana Burn","Banish"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("1.5_mana_dmg"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(13),"Vampire","class_herovampire.png","7 damage per level. -1 health/mana per tile explored. First strike. " +
        		"Immune to poison and blind. 10% health from blood pools. 5% life steal. +5% life steal for converted spells.",
      	      	"The Vampire is like a very confusing rogue. Try to take out all of the shroud at lower levels so that you are " +
      	      	"not hindered when you level up. This character can be powerful if his first strike and health stealing abilities " +
      	      	"are used correctly.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{"First Strike"}, new String[]{"Poison","Blind"}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,7}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, .05f, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(-1, -1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","5%_life_steal","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("","heal_10%"),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		/*class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(30),"Viceroy","class_heroviceroy.png",
                "20% discount shops. 2x more gold map. Number of seen enemies increases found gold value by 20%. Number of seen enemies decreases attack by 3%.", 
      	        "Pick the elf, pixie, or gremlin races. Find an attack spell and kill the enemies after picking up the gold",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,10,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod(""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));*/
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(9),"Warmonger","class_herowarlord.png",
        		"Begins with KillProtect spell. +75% damage when health below 25%. Drinking mana potions give next hit 30% damage.", 
      	      	"Try to keep this character's health as low as possible to utilize his attack bonus. Using the elf or human races is recommended.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"nxt_hit_30%",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "KillProtect","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("75%_atk_health_low"),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(16),"Werebear","class_herowerebear.png",
        		"+300% starting health. Potions 100% effective. No regen.", 
      	      	"Choose the gargoyle race with this class as potions are a necessity without shroud regen. Don't worry about " +
      	      	"levels with lots of poison and mana burn enemies as they won't make any difference.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{40,10,10}, new float[]{0,0,0},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(1f,1f,3,3,"",""),
						new ClassPlayerShroudMod(0, 0, 0, "","",false,""),
						new ClassPlayerSpellMod(0,"", 0, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("","","",""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		class_holder.add(new ClassDungeonPlayerClass(new ClassUnlockCost(0),"Wizard","class_herowizard.png",
        		"Can see all spell locations. -1 mana cost to use spells. -30% attack damage. +30% spell damage.",
      	      	"You should have an easy enough time fighting enemies once you find the fireball spell. Be careful on " +
      	      	"levels with multiple magic resistant enemies as the Wizard is not as skilled when he runs out of mana.",class_unlocked(class_holder.size()),
      	      new ClassPlayerClassModifiers(
						modObjects,
						new ClassPlayerSituationMods(new String[]{}, new String[]{}, new String[]{}),
						new ClassPlayerAttrMod(new int[]{10,5,5}, new int[]{10,10,10}, new float[]{0,0,-.3f},
								new float[]{0,0,0}, 0, 0, 1, 0, 0, 1),
						new ClassPlayerPotionMod(.55f,.55f,3,3,"",""),
						new ClassPlayerShroudMod(1, 1, 0, "","",false,"spell"),
						new ClassPlayerSpellMod(.3f,"all", -1, "","","","",""),
						new ClassPlayerPickupStructureMod(0, 0, 0, 0, 0, 0, 0),
						new ClassPlayerPickupMod("",""),
						new ClassPlayerAttackMod("","","",""),
						new ClassPlayerEnemyMod(""),
						new ClassPlayerStepMod(""))));
		classObjects = new ClassDungeonPlayerClass[class_holder.size()];
		classObjects = class_holder.toArray(classObjects);
	}
	
	public String[] itemPrefixes = {
			"Iron",
			"Brass",
			"Steel",
			"Onyx",
			"Silver",
			"Gold",
			"Platinum",
			"Titanium",
			"Plasma",
			"Cosmic",
			"Godly"
	};
	
	public String[] techPrefixes = {
			"Prehistoric",
			"Stone",
			"Copper",
			"Bronze",
			"Classic",
			"Baroque",
			"Progressive",
			"Modern",
			"New Age",
			"Futuristic",
			"Pinnacle",
			
	};
	
	public int get_unlock_at_id(int id){
		return unlock_prototype.get_factory().get_upgrade_at_id(id);
	}
	
	public ClassDungeonShop[] shopObjects;
	
	public void set_upgrade_objects(){
		logger.print("Upgrade Objects Remade");
		ArrayList<ClassDungeonShop> shop_holder = new ArrayList<ClassDungeonShop>();
		shop_holder.add(new ClassDungeonShop("Mana Potion","loc_shop","icon_manapotion.png","Gives you +1 Mana Potion","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Health Potion","loc_shop","icon_healthpotion.png","Gives you +1 Health Potion","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Attack","loc_shop","icon_attackboost.png","Gives you +" + (2 + player_level) + " Attack","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Health","loc_shop","icon_hpboost.png","Gives you +" + (5 + player_level) + " Health","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Mana","loc_shop","icon_mpboost.png","Gives you +" + (5 + player_level) + " Mana","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Exp","loc_shop","icon_ruin.png","Gives you +" + (5 + player_level) + " Exp","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Life","loc_shop","icon_life.png","Gives you an extra life","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Full Heal","loc_shop","loc_altarshroud.png","Heals all health","",new String[0],player_level,true));
		shop_holder.add(new ClassDungeonShop("Full Restore","loc_shop","icon_spells.png","Restores all mana","",new String[0],player_level,true));
		
		shop_holder.add(new ClassDungeonShop("Shield","loc_shop","upgrade_shield.png","Immune to blind/weakness/manaburn/amnesia/poison","",itemPrefixes,get_unlock_at_id(1),true));
		shop_holder.add(new ClassDungeonShop("Armor","loc_shop","upgrade_armor.png","Physical Resistance Increase","",itemPrefixes,get_unlock_at_id(2),true));
		shop_holder.add(new ClassDungeonShop("Helm","loc_shop","upgrade_helm.png","Magic Resistance","",itemPrefixes,get_unlock_at_id(3),true));
		shop_holder.add(new ClassDungeonShop("Boots","loc_shop","upgrade_boots.png","Dodge Increase","",itemPrefixes,get_unlock_at_id(4),true));
		shop_holder.add(new ClassDungeonShop("Gloves","loc_shop","upgrade_gloves.png","ShroudRegen Increase","",itemPrefixes,get_unlock_at_id(5),true));
		shop_holder.add(new ClassDungeonShop("Staff","loc_shop","upgrade_staff.png","Magical Attack Increase","",itemPrefixes,get_unlock_at_id(6),true));
		shop_holder.add(new ClassDungeonShop("Staff","loc_shop","upgrade_sword.png","Physical Attack Increase","",itemPrefixes,get_unlock_at_id(7),true));
		shop_holder.add(new ClassDungeonShop("Mace","loc_shop","upgrade_mace.png","Double Hit Increase","",itemPrefixes,get_unlock_at_id(8),true));
		shop_holder.add(new ClassDungeonShop("Dice","loc_shop","upgrade_dice.png","Attack Range Increase","",itemPrefixes,get_unlock_at_id(9),true));
		shop_holder.add(new ClassDungeonShop("Scope","loc_shop","upgrade_scope.png","Player Shroud Info Increase","",itemPrefixes,get_unlock_at_id(10),true));
		shop_holder.add(new ClassDungeonShop("Mining","loc_shop","upgrade_mining.png","Gold Piles Increase","",techPrefixes,get_unlock_at_id(11),false));
		shop_holder.add(new ClassDungeonShop("Refining","loc_shop","upgrade_refining.png","Gold Value Increase","",techPrefixes,get_unlock_at_id(12),false));
		shop_holder.add(new ClassDungeonShop("Medicine","loc_shop","upgrade_medicine.png","Potions Effectiveness Increase","",techPrefixes,get_unlock_at_id(13),false));
		shop_holder.add(new ClassDungeonShop("Barter","loc_shop","upgrade_barter.png","Shop Discount Increase","",techPrefixes,get_unlock_at_id(14),false));
		shop_holder.add(new ClassDungeonShop("Cities","loc_shop","upgrade_cities.png","Shop/Altar Frequency Increase","",techPrefixes,get_unlock_at_id(15),false));
		shop_holder.add(new ClassDungeonShop("Religion","loc_shop","upgrade_religion.png","Available Gods Increase","",techPrefixes,get_unlock_at_id(16),false));
		shop_holder.add(new ClassDungeonShop("Ritual","loc_shop","upgrade_ritual.png","Starting HP/MP Increase","",techPrefixes,get_unlock_at_id(17),false));
		shopObjects = new ClassDungeonShop[shop_holder.size()];
		shopObjects = shop_holder.toArray(shopObjects);
	}
	
	public ClassDungeonRace[] raceObjects = {
			new ClassDungeonRace("Dwarf","race_dwarf.png","Convert spell into +10 health","",0),
			new ClassDungeonRace("Gargoyle","race_gargoyle.png","Convert spell into +1 health potion","",0),
			new ClassDungeonRace("Elf","race_elf.png","Convert spell into +10 mana","",0),
			new ClassDungeonRace("Pixie","race_pixie.png","Convert spell into +1 mana potion","",0),
			new ClassDungeonRace("Human","race_human.png","Convert spell into +10% attack","",2),
			new ClassDungeonRace("Gremlin","race_gremlin.png","Convert spell into +10 gold","",4),
			new ClassDungeonRace("Imp","race_imp.png","Convert spell into +5 experience","",6),
			new ClassDungeonRace("Centaur","race_centaur.png","Convert spell into +5% double Hit","",8),
			new ClassDungeonRace("Troll","race_troll.png","Convert spell into +5 base attack","",10),
			new ClassDungeonRace("Meta","race_meta.png","Convert spell into +2 base attack, +4 mana, and +4 health","",11)
	};
	
	public ClassDungeonLevel[] levels_w_description(){
		for(ClassDungeonLevel level:levelObjects){
			level.set_description(enemyObjects);
		}
		return Arrays.copyOfRange(levelObjects, 0, levelObjects.length-1);
	}
	
	public ClassDungeonLevel[] levelObjects = {
			
			new ClassDungeonLevel("Tutorial Level","wall_temple.png","","Just follow the instructions. You will be fine",
					"dirt_temple.png",new int[]{3,4,6,9},6,"The purpose of the game is to find and slay all level 10 monsters in each dungeon." +
				    " Be careful though. You may need to level up you character a bit before you are ready to take them on. " +
				    "Tap anywhere to begin.",0),
			new ClassDungeonLevel("Forest","wall_forest.png","",
					"Enemies in the forest focus on hitting first, killing the player quickly. Make sure to choose the dwarf race to avoid " +
					"1-hit KOs.","dirt_forest.png",new int[]{3,4,6,9},7,"The #player_class was walking with his friends,\n who played among " +
					"the gnomes.\n When out of nowhere monsters came,\n and took them from their homes!",1),
			new ClassDungeonLevel("Desert","wall_desert.png","",
				    "The desert is primarily populated with poisonous enemies. Try to attack them before leveling up to avoid any " +
				    "lasting effects.","dirt_desert.png",new int[]{1,4,11,12},8,"The  #player_class chased the bandit king,\n across " +
				    "the magic land.\n And surprised the leader and his men,\n asleep amongst the sand.",2),
			new ClassDungeonLevel("Dungeon","wall_dungeon.png","",
				    "Undead stalk the dungeon stage. They may try to weaken you as you attack.","dirt_dungeon.png",new int[]{6,13,15,16},9,
				    "The #player_class was captured\n as the demon king was downed.\n And thrown into a dungeon\n stationed deeper underground.",3),
			new ClassDungeonLevel("Factory","wall_industrial.png","",
				    "Enemies in the factory will focus on blind and mana burn to try and defeat you. Look for enemies with one common " +
				    "ailment to avoid handicapping yourself unnecessarily.","dirt_industrial.png",new int[]{0,1,7,22},10,"Forsooth! The " +
				    "#player_class had escaped,\n out of the dungeon's lair.\n But stumbled into a factory,\n halfway up the stair.",4),
			new ClassDungeonLevel("Library","wall_library.png","",
				    "The magical enemies in the library look down on champions who try to attack them physically. Try to first strike " +
				    "them as much as possible.","dirt_library.png",new int[]{2,8,10,14},11,"The #player_class shut down the machines,\n and " +
				    "rescued all the gnomes.\n  When magic users sprouted up,\n amonst the dusty tomes.",5),
			new ClassDungeonLevel("Marsh","wall_marsh.png","",
				    "Enemies of the marsh will try to wear you down with high health and weakness inflictions. Find a heal or might spell " +
				    "before taking any unnecessary risks.","dirt_marsh.png",new int[]{13,9,16,21},12,
				    "On the outskirts of the town,\n the #player_class was apt to go.\n " +
				    "The demon city lay ahead,\n across the dark plateau.",6),
			new ClassDungeonLevel("The Pit","wall_snakepit.png","",
				    "Occupants of the pit will try to inflict weakness and amnesia whenever possible. Pick the dwarf race to counter-balance " +
				    "their high attack.","dirt_snakepit.png",new int[]{5,14,0,15},13,"The #player_class snuck into the moat,\n surrounding " +
				    "the town's size.\n A pit of ghouls was found instead,\n a most unwelcome prize.",7),
			new ClassDungeonLevel("Temple","wall_tutorial.png","",
				    "Monster have spend many years in the temple building up resistances to any hero's magical or physical attacks. Get ready " +
				    "for long drawn-out fights.","dirt_tutorial.png",new int[]{22,6,24,2},14,"The #player_class climbed out of the pit,\n and wandered to" +
				    " the city.\n A temple stood about the center,\n looking mighty pretty.",8),
			new ClassDungeonLevel("Crypt","wall_crypt.png","",
				    "The booby-trapped crypt relies on poison and enemies with multiple lives to defeat any incoming hero.",
				    "dirt_crypt.png",new int[]{3,11,19,20},15,"The #player_class " +
					"traveled to the depths,\n of the temples core.\n There was found a trove of dead,\n gaurding a dark door.",9),
			new ClassDungeonLevel("Palace","wall_palace.png","",
				    "The palace court features enemies that specialize in disorienting a champion. Foes will run away to heal " +
				    "as well as banish the player whenever possible.","dirt_palace.png",new int[]{5,8,21,23},16,"The #player_class walked out of the" +
					" door,\n and found his face aghast.\n The door had lead him to the palace,\n where the infernal had amassed.",10),
			new ClassDungeonLevel("Gateway","wall_gateway.png","",
				    "Don't try to take on the gateway with a magic user. All the enemies here have a combination of mana burn, " +
				    "magic resist, and static.","dirt_gateway.png",new int[]{7,15,18,19},17,"The #player_class slew the undead " +
					"king\n and out of nowhere came,\n a portal to another world\n a dark voice and dark name.",11),
			new ClassDungeonLevel("Tower","wall_tower.png","",
				    "Physical Attacking heros will be at a disadvantage on the tower. The enemies here specialize in poison, " +
				    "blind, and physical resist.","dirt_tower.png",new int[]{10,12,13,25},18,"The " +
					"#player_class climbed into the muck,\n and ended up inside.\n A horde of monsters filtered in,\n the hero naught to hide.",12),
			new ClassDungeonLevel("Cloud City","wall_cloudcity.png","",
				    "The cloud city guard is a formidable opponent. Their strategy depends on weakening you before you are banished to " +
				    "the other side of the map. Be wary of their high attack.","dirt_cloudcity.png",new int[]{16,20,23,25},19,"The tower " +
				    "lead into a city,\n high above the clouds.\n The #player_class sees his friends tied up,\n amonst the demon crowds.",13),
			new ClassDungeonLevel("Inferno","wall_inferno.png","",
					"Avoid contracting static at all costs. Being banished can often lose this dungeon for you as well","dirt_inferno.png",
					new int[]{26,27,28,29},20,"'This is it!'\n The #player_class says as the charge begins.\n " +
					"One final stage to save world,\n the demon leader grins...",14),
			new ClassDungeonLevel("Gauntlet","wall_gauntlet.png","",
				    "Experiment with all of the classes first to figure out their strengths and weaknesses. Remember that " +
				    "you can restart scenarios as many times as you like as long as you don't quit or lose. Good luck.",
				    "dirt_gauntlet.png",new int[]{0,0,0,0},21,"",15)
	};
	
	public ClassDungeonTotem[] totemObjects = {
			new ClassDungeonTotem("Totem","wall_totem.png","Just a normal totem...","Gives powers based on character...")
	};
	
	public ClassDungeonEnemy[] enemyObjects = {
			//Attributes:
			//mburn, poison, MRnorm, MRplus, PRnorm, PRplus, forget, blind, weakness, magicalAttack, undead, coward, banish, fStrike, static
			new ClassDungeonEnemy("Re-Animate","enemy_aniarmor.png","","Hit it with magic.",enemy_names,new int[]{1,11,1},
					new boolean[]{false, false, 	false, 	false, 	false, 	false, 	false, 	false, 	true, 	true,			true,	false,	false, 	false,	false, false, false},
					"Terminator XK7"),
			new ClassDungeonEnemy("Bandit","enemy_bandit.png","","Any attack will work.",enemy_names,new int[]{9,8,1},
					new boolean[]{false, false, 	false, 	false, 	false, 	false, 	false, 	true, 	false, 	false,			false,	false,	false, 	false,	false, false, false},
					"Robin The Hood"),
			new ClassDungeonEnemy("Dragon","enemy_dragon.png","","Hit it with magic, then physical/poison.",enemy_names,new int[]{17,11,1},
					new boolean[]{false, false, 	true, 	false, 	true, 	false, 	false, 	false, 	false, 	true,			false,	false,	false, 	false,	false, false, false},
					"Ol' Burny"),
			new ClassDungeonEnemy("Goat","enemy_goat.png","","Hit it with magic.",enemy_names,new int[]{9,8,1},
					new boolean[]{false, false, 	false, 	false, 	false, 	true, 	false, 	false, 	false, 	false,			false,	false,	false, 	false,	false, false, false},
					"Double Kick McGruff"),
			new ClassDungeonEnemy("Goblin","enemy_goblin.png","","Hit it with your sword.",enemy_names,new int[]{8,12,1},
					new boolean[]{false, false, 	true, 	false, 	false, 	false, 	false, 	false, 	false, 	false,			false,	false,	false, 	true,	false, false, false},
					"King Frob"),
			new ClassDungeonEnemy("Golem","enemy_golem.png","","Hit it with your sword.",enemy_names,new int[]{18,4,1},
					new boolean[]{false, false, 	false, 	true, 	false, 	false, 	true, 	false, 	false, 	true,			true,	false,	false, 	false,	false, false, false},
					"The Protector"),
			new ClassDungeonEnemy("Sludge","enemy_goo.png","","Hit it with magic.",enemy_names,new int[]{20,4,1},
					new boolean[]{false, false, 	false, 	false, 	false, 	true, 	false, 	false, 	false, 	false,			false,	false,	false, 	false,	false, false, false},
					"Mega-Slime"),
			new ClassDungeonEnemy("Gorgon","enemy_gorgon.png","","Any attack will work.",enemy_names,new int[]{8,7,1},
					new boolean[]{true, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	true,			false,	false,	false, 	false,	false, false, false},
					"Bad Hair Day"),
			new ClassDungeonEnemy("Imp","enemy_imp.png","","Hit it with magic. Don't let it run.",enemy_names,new int[]{7,11,1},
					new boolean[]{false, false, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	false,			false,	true,	false, 	false,	false, false, false},
					"Clifford"),
			new ClassDungeonEnemy("Ice Cube","enemy_meatman.png","","Hit it with your sword. Alot.",enemy_names,new int[]{35,3,1},
					new boolean[]{false, false, 	false, 	false, 	false, 	true, 	false, 	false, 	false, 	false,			false,	false,	false, 	false,	false, false, false},
					"Nice Cube"),
			new ClassDungeonEnemy("Naga","enemy_naga.png","","Hit it with magic.",enemy_names,new int[]{11,10,1},
					new boolean[]{false, false, 	false, 	false, 	true, 	true, 	false, 	false, 	false, 	true,			false,	false,	false, 	false,	false, false, false},
					"Crusty Crabs"),
			new ClassDungeonEnemy("Goo Gi","enemy_plant.png","","Any attack will work.",enemy_names,new int[]{16,4,1},
					new boolean[]{false, true, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	false,			false,	false,	false, 	false,	false, false, false},
					"Poison Oak"),
			new ClassDungeonEnemy("Serpent","enemy_serpent.png","","Hit it with magic.",enemy_names,new int[]{10,9,1},
					new boolean[]{false, true, 	false, 	false, 	true, 	false, 	false, 	false, 	false, 	false,			false,	false,	false, 	false,	false, false, false},
					"Cobra-Cobra"),
			new ClassDungeonEnemy("Vile","enemy_vampire.png","","Hit it with magic.",enemy_names,new int[]{7,12,1},
					new boolean[]{false, false, 	false, 	false, 	true, 	false, 	false, 	true, 	false, 	true,			true,	false,	false, 	false,	false, false, false},
					"Sawtooth"),
			new ClassDungeonEnemy("Warlock","enemy_warlock.png","","Hit it with your sword.",enemy_names,new int[]{7,13,1},
					new boolean[]{false, false, 	false, 	true, 	false, 	false, 	true, 	false, 	false, 	true,			false,	false,	false, 	false,	false, false, false},
					"Craig Copperfield"),
			new ClassDungeonEnemy("Wraith","enemy_wraith.png","","Hit it with your sword.",enemy_names,new int[]{6,13,1},
					new boolean[]{false, false, 	false, 	true, 	false, 	false, 	false, 	false, 	false, 	true,			true,	false,	false, 	false,	false, false, false},
					"Dread Wraith"),
			new ClassDungeonEnemy("Undead","enemy_zombie.png","","Magic recommended, though you will probably run out.",enemy_names,new int[]{17,2,1},
					new boolean[]{false, false, 	false, 	false, 	false, 	true, 	false, 	false, 	true, 	false,			true,	false,	false, 	false,	false, false, false},
					"Undead Mel"),
			new ClassDungeonEnemy("Grumpkin","enemy_grumpkin.png","","Slap it.",enemy_names,new int[]{1,1,1},
					new boolean[]{false, true, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	false,			true,	false,	false, 	false,	false, false, false},
					"Master Grumpkin"),
			new ClassDungeonEnemy("Sentinel","enemy_sentinel.png","","Hit it with magic. Don't let it hit you back.",enemy_names,new int[]{12,4,1},
					new boolean[]{false, false, 	true, 	false, 	true, 	false, 	false, 	false, 	false, 	false,			true,	false,	false, 	false,	true, false, false},
					"Tank Sentinel"),
			new ClassDungeonEnemy("Blue Guard","enemy_guard.png","","Hit it with magic.",enemy_names,new int[]{13,6,1},
					new boolean[]{true, 	true, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	false,			false,	false,	false, 	false,	false, false, false},
					"High Guard"),
			new ClassDungeonEnemy("Hydra","enemy_hydra.png","","Any attack will work.",enemy_names,new int[]{7,8,3},
					new boolean[]{false, false, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	true,			false,	false,	false, 	true,	false, false, false},
					"Chaos Hydra"),
			new ClassDungeonEnemy("Keeper","enemy_keeper.png","","Hit it with magic. Don't let it run.",enemy_names,new int[]{2,16,2},
					new boolean[]{false, false, 	false, 	false, 	false, 	false, 	false, 	false, 	true, 	false,			true,	true,	false, 	false,	false, false, false},
					"Soul Keeper"),
			new ClassDungeonEnemy("Turrent","enemy_turrent.png","","Hit it with your sword.",enemy_names,new int[]{4,9,2},
					new boolean[]{false, false, 	false, 	true, 	true, 	false, 	false, 	false, 	false, 	false,			true,	false,	false, 	false,	false, false, false},
					"Admin Turrent"),
			new ClassDungeonEnemy("Dark Magi","enemy_darkmagi.png","","Hit it with magic.",enemy_names,new int[]{3,12,5},
					new boolean[]{false, false, 	false, 	false, 	false, 	false, 	false, 	false, 	false, 	true,			false,	false,	true, 	false,	false, false, false},
					"Dark Disciple"),
			new ClassDungeonEnemy("Terror","enemy_overterror.png","","Hit it with magic.",enemy_names,new int[]{3,3,5},
					new boolean[]{false, false, 	false, 	false, 	false, 	false, 	false, 	true, 	false, 	false,			true,	false,	false, 	false,	false, false, false},
					"Nightmare"),
			new ClassDungeonEnemy("Swimpist","enemy_swampfighter.png","","Hit it with your sword.",enemy_names,new int[]{12,12,1},
					new boolean[]{false, false, 	true, 	false, 	true, 	false, 	false, 	false, 	false, 	false,			false,	false,	false, 	true,	false, false, false},
					"Grand Protector"),
			new ClassDungeonEnemy("Fire Demon","enemy_demonfire.png","","Hit it with your sword.",enemy_names,new int[]{4,16,2},
					new boolean[]{false, false, 	false, 	true, 	false, 	false, 	false, 	false, 	false, 	true,			false,	false,	false, 	false,	false, false, false},
					"Fire God"),
			new ClassDungeonEnemy("Doom Wisp","enemy_demonsoulless.png","","Hit it with magic. Don't let it run.",enemy_names,new int[]{11,10,2},
					new boolean[]{false, false, 	false, 	true, 	false, 	true, 	false, 	false, 	false, 	false,			true,	true,	false, 	false,	false, false, false},
					"Vortex Prime"),
			new ClassDungeonEnemy("Tortured","enemy_demontorturer.png","","Hit it with your sword.",enemy_names,new int[]{20,4,1},
					new boolean[]{false, false, 	true, 	false, 	false, 	false, 	false, 	false, 	true, 	false,			false,	false,	false, 	false,	false, false, false},
					"Endless Night"),
			new ClassDungeonEnemy("Overlord","enemy_demonoverlord.png","","Hit it with magic. Physical on last life.",enemy_names,new int[]{12,12,3},
					new boolean[]{false, false, 	true, 	false, 	true, 	false, 	false, 	false, 	false, 	true,			false,	false,	true, 	false,	false, false, false},
					"Grand Overlord")
	};
	
	public boolean spell_unlocked(int id){
		return unlock_prototype.get_factory().get_spell_unlocked(id);
	}
	
	public ClassDungeonSpell[] spellObjects;
	
	public void set_spell_objects(){
		ArrayList<ClassDungeonSpell> spell_holder = new ArrayList<ClassDungeonSpell>();
		/*0*/spell_holder.add(new ClassDungeonSpell("Affinity","glyph_affinity.png",
				"Turns a blood pool into something special...",
				"A completely unpredictable spell with a high casting cost. The shops that this spell summons are the " +
				"most powerful in the game. Can easily turn an unbeatable level into a cakewalk if you can catch HP/MP " +
				"boosts and shops often.",spell_unlocked(spell_holder.size()+1),20,26,false,false));
		/*1*/spell_holder.add(new ClassDungeonSpell("Blood","glyph_blood.png",
				"Health regeneration added to mana.",
				"Very convenient for magic users or characters with low attack. It can be used permanently by trashing " +
				"the spell once it has been turned on.",spell_unlocked(spell_holder.size()+1),0,2,false,true));
		/*2*/spell_holder.add(new ClassDungeonSpell("Chains","glyph_chains.png",
				"Nullifies next enemy banish or coward",
				"This spell will be very useful on the later levels. Trust me.",spell_unlocked(spell_holder.size()+1),3,15,false,true));
		/*3*/spell_holder.add(new ClassDungeonSpell("Converter","glyph_converter.png",
				"Converts 5 gold into 5 health per level. Cures all.",
				"A great alternative to the health spell for classes that mine gold quickly. Also more effective in the " +
				"fact that it cures everything instead of just non-magic problems, making it ideal for magic users.",spell_unlocked(spell_holder.size()+1),3,7,false,true));
		/*4*/spell_holder.add(new ClassDungeonSpell("EndWall","glyph_endwall.png",
				"Destroys section of wall.",
				"Use to get around enemies that may be too tough to fight until your character is a higher level.",spell_unlocked(spell_holder.size()+1),10,6,false,false));
		/*5*/spell_holder.add(new ClassDungeonSpell("FireBall","glyph_fireball.png",
				"Does 4 damage to enemy per hero level.",
				"A great alternative attack spell for characters without alot of mana or spells.",spell_unlocked(spell_holder.size()+1),6,5,true,false));
		/*6*/spell_holder.add(new ClassDungeonSpell("FirstStrike","glyph_firststrike.png",
				"First strike next attack.",
				"Useful in situations where the player has enough attack to kill the enemy, but not enough " +
				"health to stay alive. Also useful to avoid contracting diseases when an enemy is attacked.",spell_unlocked(spell_holder.size()+1),3,4,false,true));
		/*7*/spell_holder.add(new ClassDungeonSpell("Grumpkin","glyph_grumpkin.png",
				"Turns selected blood pool into a grumpkin.",
				"Along with the Totem enchantment, probably one of the most useful spells in the game. Use " +
				"along with characters that gain bonuses from discovered enemies, or kill the grumpkins to " +
				"gain enough experience to make it to the next level.",spell_unlocked(spell_holder.size()+1),5,13,false,false));
		/*8*/spell_holder.add(new ClassDungeonSpell("Heal","glyph_heal.png",
				"+3 health per level. Cures phys ailments.",
				"Use to quickly cure the poison, blind, and weakness ailments. Useful when trying to conserve " +
				"shroud or stay alive at the end of the level.",spell_unlocked(spell_holder.size()+1),4,9,false,true));
		/*9*/spell_holder.add(new ClassDungeonSpell("KillProtect","glyph_killprotect.png",
				"Protects hero from next killing blow.",
				"Use as a safeguard for mistakes, or a desperate move when you are about to die. Can also give " +
				"you a boost of confidence when used with an evasion class.",spell_unlocked(spell_holder.size()+1),12,11,false,true));
		/*10*/spell_holder.add(new ClassDungeonSpell("Klondike","glyph_klondike.png",
				"Does damage equal to 1/4 your gold.",
				"At 160 gold, this spell is more effective than the Fireball spell at level 10.",spell_unlocked(spell_holder.size()+1),12,23,true,false));
		/*11*/spell_holder.add(new ClassDungeonSpell("Knowledge","glyph_guild_seal.png",
				"Increases level up stats when in inventory",
				"A very useful spell when found early in the game",spell_unlocked(spell_holder.size()+1),0,30,false,false));
		/*12*/spell_holder.add(new ClassDungeonSpell("ManaSpark","glyph_teleself.png",
				"Does damage equal to mana. Drains 1/2 mana.",
				"Depending on it's use, this spell can be the most or least useful spell in a hero's arsenal. Very effective " +
				"against enemies with more than one life.",spell_unlocked(spell_holder.size()+1),0,18,true,false));
		/*13*/spell_holder.add(new ClassDungeonSpell("Medal","glyph_medal.png",
				"+1 Medal on complete.",
				"Any adventurer lucky enough to find this should hold onto it... Just in case.",spell_unlocked(spell_holder.size()+1),0,22,false,false));
		/*14*/spell_holder.add(new ClassDungeonSpell("Might","glyph_might.png",
				"+25% damage next attack.",
				"A small bonus to your attack granted by only three spell points. It can build up quickly when " +
				"used against a tougher enemy, or temporarily cancel out the effects of the weakness ailment.",spell_unlocked(spell_holder.size()+1),3,6,false,true));
		/*15*/spell_holder.add(new ClassDungeonSpell("Mind","glyph_mind.png",
				"Mana regeneration added to health.",
				"Blood is for mages. Mind is for fighters.",spell_unlocked(spell_holder.size()+1),0,13,false,false));
		/*16*/spell_holder.add(new ClassDungeonSpell("Nexus","glyph_nexus.png",
				"Does 1.5 damage per monster remaining in dungeon.",
				"Insanely powerful early on in the game. Try to find it and destroy a high level monster for the bonus XP. " +
				"Pairs well with grumpkin enchantment.",spell_unlocked(spell_holder.size()+1),11,25,true,false));
		/*17*/spell_holder.add(new ClassDungeonSpell("Petrify","glyph_petrify.png",
				"Turns level 1-8 enemy into a wall.",
				"Useful only when used against enemies of a lower level as it doesn't grant any experience bonuses. " +
				"Useless against bosses.",spell_unlocked(spell_holder.size()+1),6,7,false,false));
		/*18*/spell_holder.add(new ClassDungeonSpell("Poison","glyph_poison.png",
				"Inflicts poison on a monster.",
				"Use when your character runs out of health before killing an enemy, to give you more time to recharge " +
				"before continuing the fight. The only way a monster can be cured of poison is for it to be attacked by the player.",
				spell_unlocked(spell_holder.size()+1),6,3,false,false));
		/*19*/spell_holder.add(new ClassDungeonSpell("Reveal","glyph_reveal.png",
				"Reveals 3 unexplored tiles.","Gives you three tiles worth of shroud for regen, while showing you an unexplored " +
				"portion of the map. Is useful in the hands of the sorcerer, or with a shroud regen upgrade from a shop.",spell_unlocked(spell_holder.size()+1),4,1,false,false));
		/*20*/spell_holder.add(new ClassDungeonSpell("Sigil","glyph_dwarf_crest.png",
				"Deal 3 dmg per level. Gain 1 gold.",
				"Useful utility spell. Less powerful than the fireball with a gold increase to compensate.",spell_unlocked(spell_holder.size()+1),5,19,true,false));
		/*21*/spell_holder.add(new ClassDungeonSpell("Summon","glyph_summon.png",
				"Summons a monster of equal level.",
				"Use when your path is blocked completely by more powerful monsters. Trash at later levels once the Teleport " +
				"or End Wall spells have been found.",spell_unlocked(spell_holder.size()+1),6,4,false,false));
		/*22*/spell_holder.add(new ClassDungeonSpell("Teleport","glyph_telemonster.png",
				"Teleports monster to random empty tile.",
				"Cheaper than End Wall, but be careful when used in conjunction with the Petrify or Totem spells as it may make " +
				"enemies impossible to attack.",spell_unlocked(spell_holder.size()+1),8,9,false,false));
		/*23*/spell_holder.add(new ClassDungeonSpell("Totem","glyph_totem.png",
				"Turn blood pool into totem. +5% atk/ totem.",
				"Make sure to only use on blood pools in areas with dead ends to avoid blocking yourself in or making a boss unreachable.",
				spell_unlocked(spell_holder.size()+1),10,20,false,true));
		
		spellObjects = new ClassDungeonSpell[spell_holder.size()];
		spellObjects = spell_holder.toArray(spellObjects);
		
	}
	
	public ClassDungeonGod[] godObjects = {
			new ClassDungeonGod("Grog the Unholy","god_grog.png","Grog rewards the slaughter of the living, " +
					"but looks down on the killing of the undead.","",
					new String[]{"+25% Atk vs. Living","-15% Atk vs. Undead","+45% Atk vs. Living","+85% Atk vs. Living","+160% Atk vs. Living"},
					new int[]{2,5,8},0),
			new ClassDungeonGod("Vark the Destroyer","god_vark.png","Vark rewards the destruction of enemies, " +
					"but looks down on dodging their attacks.","",
					new String[]{"10% HP Per Kill","","40% More HP Per Physical Kill","+2 Max HP Per Physical Kill","+5 Max HP Per Physical Kill"},
					new int[]{6,8,10},0),
			new ClassDungeonGod("Charn the Goddess","god_charn.png","Charn rewards the creation of walls, " +
					"but looks down on their destruction.","",
					new String[]{"+1 Max HP For Wall Creation","","+2 Max HP For Wall Creation","+3 Max HP For Wall Creation","+5 Max HP For Wall Creation"},
					new int[]{5,7,9},0),
			new ClassDungeonGod("Phebos the Lover","god_phebos.png","Phebos rewards the use of magic, " +
					"but looks down on being hit.","",
					new String[]{"+20% Spell Dmg","+10% Enemy Atk","+15 Max MP","+40% DbleHit/Dodge With Status Benefit","Permanent First Strike"},
					new int[]{5,7,9},0),
			new ClassDungeonGod("Wix the Leech","god_wix.png","Wix rewards attacking and using blood pools, " +
					"but looks down on using potions.","",
					new String[]{"+5% HP Blood Pools & First Strike","HP Reduced to 1","+10% Dbl Hit","+15% Life Steal & +5 Atk","+50% HP Blood Pools & +10 Atk"},
					new int[]{3,6,9},1),
			new ClassDungeonGod("Angor the Eternal","god_angor.png","Angor rewards being killed, " +
					"but looks down on killing.","",
					new String[]{"+1 Max HP Every Death","Drains 50% Mana Every Kill","+3 Max HP Every Death","+5 Max HP Every Death","+5 HP For Each Discovered Enemy"},
					new int[]{4,6,10},2),
			new ClassDungeonGod("Mant the King","god_mant.png","Mant rewards killing the undead, " +
					"but looks down on the slaughter of the living.","",
					new String[]{"+25% Atk vs. Undead","-15% Atk vs. Living","+45% Atk vs. Undead","+85% Atk vs. Undead","+160% Atk vs. Undead"},
					new int[]{2,5,8},3),
			new ClassDungeonGod("Shuth the Warrior","god_shuth.png","Shuth rewards attacking enemies with force, " +
					"but looks down on the practice of magic.","",
					new String[]{"+50% Atk","Max MP Reduced To 1","+75% Atk","+150% Atk","+300% Atk"},
					new int[]{6,8,10},4),
			new ClassDungeonGod("Quarzi the Chemist","god_quarzi.png","Quarzi rewards the drinking of potions, " +
					"but looks down on hitting twice.","",
					new String[]{"+10% Potion Effectiveness","","+5 Max MP","+25 Max HP","Potions 100% Effective"},
					new int[]{1,5,7},5),
			new ClassDungeonGod("Dun the Rock","god_dun.png","Dun rewards taking damage, " +
					"but looks down on being killed.","",
					new String[]{"+2.5% m/p Resistance","","+5% m/p Resistance","+10% m/p Resistance","+15% m/p Resistance"},
					new int[]{4,7,10},6),
			new ClassDungeonGod("Jesper the Poet","god_jesper.png","Jesper rewards ailments, " +
					"but looks down on bonuses.","",
					new String[]{"+1 HP/MP Shroud Recovery","Status Benefit Spells Also Poison","+2 HP/MP recovery. +5% cure ailment","+3 HP/MP recovery. +15% cure ailment","+5 HP/MP recovery. +30% cure ailment"},
					new int[]{3,5,7},7),
			new ClassDungeonGod("Tyn the Cheat","god_tyn.png","Tyn rewards the destruction of spells, " +
					"but looks down on using magic.","",
					new String[]{"+50% Spell Destruction Bonus","-25% Mag Atk","+75% Spell Destroy Bonus","+125% Spell Destroy Bonus","+250% Spell Destroy Bonus"},
					new int[]{2,4,6},8),
			new ClassDungeonGod("Nergal the Mage","god_nergal.png","Nergal rewards using magic, " +
					"but looks down on spell destruction.","",
					new String[]{"MP Restored","No Spell Bonus","+5 Max MP. +5% SpellAtk","+20 Max MP. +20% SpellAtk","+35 Max MP. +35% SpellAtk"},
					new int[]{3,6,10},9),
			new ClassDungeonGod("Xysa the Witch","god_xysa.png","Xysa rewards killing physical attacking enemies, " +
					"but looks down on killing magic users.","",
					new String[]{"+10% Physical Resist","-5% Magic Resist","+15% Physical Resist","Weakness/Poison Immune","Permanent Poison Attack"},
					new int[]{4,6,8},10),
			new ClassDungeonGod("Yin the Thug","god_yin.png","Yin rewards killing magic users, " +
					"but looks down on killing physical atacking enemies.","",
					new String[]{"+10% Magic Resist","-5% Physical Resist","+15% Magic Resist","Banish/Static Immune","Permanent First Strike"},
					new int[]{4,7,10},10)
	};
	
	public HashMap<String,Integer> get_god_map(){
		HashMap<String,Integer> god_map = new HashMap<String,Integer>();
		for(int i = 0; i < godObjects.length; i++){
			god_map.put(godObjects[i].Name, i);
		}
		return god_map;
	}
	
	/*public NameImageDescriptionAdvice[] creditObjects = {
			new NameImageDescriptionAdvice("Creator: Brad Zimmerman","class_herobrad.png","Words just can't describe him",""),
			new NameImageDescriptionAdvice("Music: Sid Muralidhar","class_herosid.png","Not afraid to show his internet history",""),
			new NameImageDescriptionAdvice("Producer: Tony Carpenter","class_herotony.png","West Philly born and raised","")
	};*/
	
	public ClassDungeonPickup[] iconObjects;
	
	public void set_icon_objects(){
		ArrayList<ClassDungeonPickup> icon_holder = new ArrayList<ClassDungeonPickup>();
		icon_holder.add(new ClassDungeonPickup("Attack Boost","icon_attackboost.png","+1 Attack","",0,"animation_ballrotateviolet"));
		icon_holder.add(new ClassDungeonPickup("Health Boost","icon_hpboost.png","+5 Health","",1,"animation_ballrotatered"));
		icon_holder.add(new ClassDungeonPickup("Health Potion","icon_healthpotion.png","+1 Health Potion","",2,"animation_ballrotatered"));
		icon_holder.add(new ClassDungeonPickup("Mana Boost","icon_mpboost.png","+5 Mana","",3,"animation_ballrotateblue"));
		icon_holder.add(new ClassDungeonPickup("Mana Potion","icon_manapotion.png","+1 Mana Potion","",4,"animation_ballrotateblue"));
		icon_holder.add(new ClassDungeonPickup("Gold","icon_gold.png","+" + (10+get_unlock_at_id(12)) + " Gold","",5,"animation_ballrotategold"));
		icon_holder.add(new ClassDungeonPickup("Piety","icon_piety.png","Favor With Current God","",6,"animation_ballrotateblue"));
		icon_holder.add(new ClassDungeonPickup("Life","icon_life.png","+1 Life","",7,"animation_ballrotatered"));
		icon_holder.add(new ClassDungeonPickup("Blood Pool","icon_debris_blood.png","The Remains Of A Former Enemy","",8,"animation_ballrotatered"));
		iconObjects = new ClassDungeonPickup[icon_holder.size()];
		iconObjects = icon_holder.toArray(iconObjects);	
	}

	public ClassDungeonBank[] bank_objects = {
		//(String Name, String Image, String Description, String Advice, ClassUnlockCost unlock_cost, float price
		new ClassDungeonBank("Tin Member","icon_gold.png","General Admission","",new ClassUnlockCost(15),.99f,"tin_member__pocket_quest"),
		new ClassDungeonBank("Copper Member","icon_gold.png","Skip Commercials","",new ClassUnlockCost(27),1.99f,"copper_member__pocket_quest"),
		new ClassDungeonBank("Silver Member","icon_gold.png","Box Seats","",new ClassUnlockCost(55),3.99f,"silver_member__pocket_quest"),
		new ClassDungeonBank("Gold Member","icon_gold.png","IMAX/3D","",new ClassUnlockCost(120),7.99f,"gold_member__pocket_quest"),
		new ClassDungeonBank("Platinum Member","icon_gold.png","Alcohol Included","",new ClassUnlockCost(250),15.99f,"platinum_member__pocket_quest")
	};
	
	public String[] tutorialMessageTitles = {
			"Enemy In View!",
			"Enemy Defeated!",
			"Treasure!",
			"Found A Store",
			"Higher Level Enemies",
			"Level Up",
			"Attack Upgrade",
			"Attack",
			"Pick Up Spell",
			"Spells",
			"Spell Capacity",
			"Trashing Spells",
			"Player Info",
			"Zoomin' In",
			"Health Upgrade",
			"Mana Upgrade",
			"Enemy Levels",
			"Mana Potions",
			"Health Potions",
			"Shroud",
			"Healing",
			"Attack Spells",
			"Altars",
			"Worshipping",
			"Piety",
			"Gods",
			"Necessity",
			"Cash In",
			"Difficulty"
	};
	
	public String[] tutorialMessages = {
			"Welcome to Pocket Quest! Keep tapping the empty tiles to move your hero.",
			"You have spotted an enemy! Tap the enemy twice to attack it.",
			"Every time you defeat an enemy your experience increases. Look at the green bar by your character to see how much experience you need to reach the next level.",
			"Gold can be used to augment spells or buy upgrades from shops in the dungeon. Your gold also carries over after a dungeon is completed, so be careful about spending it...",
			"You found a store. Use the gold that you collected to improve your character.",
			"Defeating higher level enemies gives your character an experience bonus. Defeat the enemy in front of you to level up.",
			"When you level up: \nA) You are cured of all negative status affects on your character. \nB) Your health and mana are restored \nC) Your health, mana, and attack increase by a small amount. ",
			"You found an attack upgrade. This will increase your character's attack by one.",
			"Your attack is right underneath your character's picture. An attack predictor will also appear underneath the enemies pictures when attacking.",
			"Round icons on the ground signify spells. Walk onto one to pick it up.",
			"Spells are stored on the bottom right side of the screen. This spell will increase your attack. Click a spell once to read its description and twice to use it.",
			"You can have up to four spells on you at a time. To delete a spell click the trash icon once the spell is selected.",
			"Trashing a spell will grant you bonuses based on your race.",
			"Click on the info button by your hero to view your character's class, race, and god.",
			"Pinch and pull two fingers to zoom in and out of the game.",
			"Health upgrades increase your maximum health for the remainder of the dungeon.",
			"Mana upgrades increase your maximum mana for the remainder of the dungeon.",
			"Not all enemies will be found in order of difficulty. This enemy is too hard for you now. Save him for later.",
			"Picking up potions adds to your character's available potions. Mana potions can be clicked on the dashboard to quickly recover mana. ",
			"Health potions can be clicked on the dashboard to quickly recover health. ",
			"Both you and your enemies recover health and mana when unexplored sections of the map are uncovered. Use potions or poison to prevent the enemy from recovering.",
			"Remember to use your heal spells and health potions when your character is low on health.",
			"Some spells can be used to directly attack enemies. To use them, click on the enemy, then double click on your spell.",
			"Altars may be found in some dungeons. Move your character onto the altar in front of you to worship dun the rock.",
			"Characters can gain both blessings and curses from worshipping a god. Collect piety from the god by doing things that the god likes. You lose piety whenever you do things that the god does not like.",
			"Collect piety to perform rituals at an altar. The more piety you have collected, the more powerful the blessing granted to you.",
			"There is usually multiple altars on a level. Remember that you can only worship one god per dungeon, so choose wisely.",
			"Sometimes you need to trash a spell to make room for more powerful enchantments.",
			"Remember to cash in on your piety. It may be helpful when trying to defeat the dungeon's boss.",
			"Enemies are numbered and colored according to their levels of difficulty. Green < Yellow < Red."
};
	
public int[][] tutorialMessageMap = {
	  // 0.1.2.3.4.5.6.7.8.9.10111213141516171819*/
		{0,0,1,0,3,4,5,0,7,8,0,0,0,0,0,0,0,0,0,0}, //0
		{0,0,1,2,3,4,5,6,7,8,0,0,0,0,0,0,0,0,0,0}, //1
		{0,0,1,0,3,4,5,0,7,8,0,0,27,0,0,0,0,0,0,0}, //2
		{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0}, //3
		{0,0,15,0,14,13,12,11,0,9,9,0,0,0,0,0,0,0,0,0}, //4
		{0,0,15,0,14,13,12,11,0,10,0,0,0,0,0,0,0,0,0,0}, //5
		{0,0,15,0,14,13,12,11,0,10,0,0,0,0,0,0,0,0,0,0}, //6
		{0,29,0 ,0 ,0,0,0,0 ,0,0,0,0,0,0,23,24,25,26,0,0}, //7
		{0,0,0 ,0 ,0,0,0,0 ,0,0,0,0,0,0,23,0,25,26,0,0}, //8
		{0,0,0 ,0 ,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0}, //9
		{0,0,0 ,16,0,0,0,0 ,0,0,0,0,0,0,0,0,22,0,0,0}, //10
		{0,0,0 ,16,0,0,0,0 ,0,0,0,0,0,0,0,0,22,0,0,0}, //11
		{0,0,0 ,0 ,0,0,0,0 ,0,0,0,0,0,0,0,0,22,0,0,0}, //12
		{0,0,19,18,0,0,17,17,0,0,0,0,0,0,0,0,0,0,0,0}, //13
		{0,0,19,18,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0}, //14
		{0,0,19,18,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0}, //15
		{0,0,0 ,0 ,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0}, //16
		{0,0,20,0 ,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0}, //17
		{0,0,20,0 ,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0}, //18
		{0,0,20,0 ,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0}  //19
	  // 0.1.2.3.4.5.6.7.8.9.10111213141516171819*/
		
/*
				{0,0,0,1,%,%,%,1,0,0,0,1,x,0,0,0,0,0,x,0}, //0
				{0,P,0,x,%,S,%,x,0,%,0,1,0,1,1,1,1,1,0,0}, //1
				{0,0,0,1,%,%,%,1,0,0,0,1,0,1,0,0,0,1,0,0}, //2
				{1,1,1,1,1,1,1,1,1,x,1,1,G,1,x,1,0,1,S,0}, //3
				{0,0,0,x,0,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0}, //4
				{0,%,0,x,0,0,G,0,x,G,0,1,x,0,0,0,x,1,0,0}, //5
				{0,0,0,x,0,0,0,0,1,0,%,1,1,1,1,1,1,1,x,1}, //6
				{1,x,1,1,1,1,1,1,1,1,1,1,S,0,0,A,0,0,0,0}, //7
				{0,G,1,0,0,0,0,x,1,0,0,0,0,0,0,0,0,0,0,0}, //8
				{0,0,1,0,%,0,1,0,1,x,1,1,1,1,1,1,1,1,1,1}, //9
				{0,1,1,0,%,0,1,0,1,0,0,%,0,x,0,%,0,0,0,0}, //10
				{0,0,x,0,0,0,1,0,1,0,0,%,0,x,0,%,0,0,0,0}, //11
				{1,1,1,1,1,1,1,x,1,1,1,1,1,1,1,0,G,1,1,x}, //12
				{0,0,0,0,x,0,0,0,1,%,0,0,0,0,1,1,1,1,0,0}, //13
				{0,%,%,0,x,0,0,0,1,%,%,%,0,0,x,0,0,1,S,0}, //14
				{0,0,0,0,x,0,0,0,1,%,0,0,0,0,1,0,0,1,0,0}, //15
				{1,1,1,x,1,1,1,1,1,1,1,1,x,1,1,0,0,1,0,0}, //16
				{%,0,0,0,1,0,x,S,1,0,0,x,0,0,1,0,0,x,0,0}, //17
				{%,0,0,0,x,0,x,0,x,0,0,x,0,%,1,0,0,1,0,0}, //18
				{%,0,0,0,1,0,x,0,1,0,0,x,0,%,1,0,0,1,0,S}  //19
            // 0.1.2.3.4.5.6.7.8.9.10111213141516171819*/

};

	
	/*public String[] levelTaunts = {
		  "Please don't hurt me",
		  "We steal from the rich and kill the weak!",
          "Deserts are more fun with you dead!",
          "I sentence you to life without the possibility of escape!",
          "This factory only manufactures death. It is about time I gave you a free sample!",
          "It is hard to write a sonnet and stab somebody at the same time.",
          "I would like to let you live, but I'm just too swamped right now.",
          "Snakepit",
          "Temple",
          "Crypt",
          "Palace",
          "Gateway",
          "Tower",
          "Cloud City",
          "Inferno",
          "Gauntlet"
          
  };*/
	
	
	public String[] helpTopics = {
			"Upgrades",
			"Classes",
          "Enemies",
          "Spells",
          "Gods",
          "Modifiers",
          "Levels",
          "Credits"
          
  };
	
	/*public int[] helpImages = {
			icon_upgrades,
			icon_classes,
			icon_enemy,
			icon_spells,
			icon_gods,
			icon_modifiers,
			icon_levels,
			icon_credits
	};*/
	
	/*public String[] levelDescriptions = {
			"Learn How To Play Pocket Quest! \n(Difficulty " + (levelDifficulty[0]*10)+ "%)",
			"Monsters: " + enemyStrings[levelMonsters[1][0]] + "s, " + enemyStrings[levelMonsters[1][1]] + "s, " + enemyStrings[levelMonsters[1][2]] + "s, " + enemyStrings[levelMonsters[1][3]] +"s\n(Difficulty " + (levelDifficulty[1]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[2][0]] + "s, " + enemyStrings[levelMonsters[2][1]] + "s, " + enemyStrings[levelMonsters[2][2]] + "s, " + enemyStrings[levelMonsters[2][3]] +"s\n(Difficulty " + (levelDifficulty[2]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[3][0]] + "s, " + enemyStrings[levelMonsters[3][1]] + "s, " + enemyStrings[levelMonsters[3][2]] + "s, " + enemyStrings[levelMonsters[3][3]] +"s\n(Difficulty " + (levelDifficulty[3]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[4][0]] + "s, " + enemyStrings[levelMonsters[4][1]] + "s, " + enemyStrings[levelMonsters[4][2]] + "s, " + enemyStrings[levelMonsters[4][3]] +"s\n(Difficulty " + (levelDifficulty[4]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[5][0]] + "s, " + enemyStrings[levelMonsters[5][1]] + "s, " + enemyStrings[levelMonsters[5][2]] + "s, " + enemyStrings[levelMonsters[5][3]] +"s\n(Difficulty " + (levelDifficulty[5]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[6][0]] + "s, " + enemyStrings[levelMonsters[6][1]] + "s, " + enemyStrings[levelMonsters[6][2]] + "s, " + enemyStrings[levelMonsters[6][3]] +"s\n(Difficulty " + (levelDifficulty[6]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[7][0]] + "s, " + enemyStrings[levelMonsters[7][1]] + "s, " + enemyStrings[levelMonsters[7][2]] + "s, " + enemyStrings[levelMonsters[7][3]] +"s\n(Difficulty " + (levelDifficulty[7]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[8][0]] + "s, " + enemyStrings[levelMonsters[8][1]] + "s, " + enemyStrings[levelMonsters[8][2]] + "s, " + enemyStrings[levelMonsters[8][3]] +"s\n(Difficulty " + (levelDifficulty[8]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[9][0]] + "s, " + enemyStrings[levelMonsters[9][1]] + "s, " + enemyStrings[levelMonsters[9][2]] + "s, " + enemyStrings[levelMonsters[9][3]] +"s\n(Difficulty " + (levelDifficulty[9]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[10][0]] + "s, " + enemyStrings[levelMonsters[10][1]] + "s, " + enemyStrings[levelMonsters[10][2]] + "s, " + enemyStrings[levelMonsters[10][3]] +"s\n(Difficulty " + (levelDifficulty[10]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[11][0]] + "s, " + enemyStrings[levelMonsters[11][1]] + "s, " + enemyStrings[levelMonsters[11][2]] + "s, " + enemyStrings[levelMonsters[11][3]] +"s\n(Difficulty " + (levelDifficulty[11]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[12][0]] + "s, " + enemyStrings[levelMonsters[12][1]] + "s, " + enemyStrings[levelMonsters[12][2]] + "s, " + enemyStrings[levelMonsters[12][3]] +"s\n(Difficulty " + (levelDifficulty[12]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[13][0]] + "s, " + enemyStrings[levelMonsters[13][1]] + "s, " + enemyStrings[levelMonsters[13][2]] + "s, " + enemyStrings[levelMonsters[13][3]] +"s\n(Difficulty " + (levelDifficulty[13]*10) +"%)",
			"Monsters: " + enemyStrings[levelMonsters[14][0]] + "s, " + enemyStrings[levelMonsters[14][1]] + "s, " + enemyStrings[levelMonsters[14][2]] + "s, " + enemyStrings[levelMonsters[14][3]] +"s\n(Difficulty " + (levelDifficulty[14]*10) +"%)",
			"Just when you thought it was over... Play all the levels. In order. At once. With a random character and class. Completion unlocks the last three classes of the game"
          
  };*/

public String[] helpfulTips = {
		"Be careful. The number of bosses increases with the difficulty of the level. ",
		"Try attacking poison and mana burn enemies at the end of a turn to avoid having to use a mana or health potion. ",
		"Something special may be unlocked when every class finishes every level. ",
		"Don't forget to take breaks. Pocket Quest may be intense for small children. ",
		"Don't be too quick to spend gold at shops. It can also be used to increase magical attacks or heal your character. ",
		"Blood pools can be used for a variety of reasons, such as increasing stats and summoning familiars. ",
		"Stuck on a difficult level? Try leveling up your shops and altars by gaining experience on easier levels first. ",
		"You probably aren't even reading this anyways. ",
		"Did you know that you can even design your own class? I wonder how one would unlock this feature... ",
		"Choose races that compliment your class. The wizard class, for example, is boosted considerably by the elf race. ",
		"As the game progresses, shops will start to sell more powerful items at greater prices. ",
		"Use the [Player Info] button on the home screen to read about the classes and enemies that you have already discovered. ",
		"Don't quit the game just because you are about to lose. Going out with a bang will net you some experience points for future games. ",
		"Don't forget about altars. As the levels get harder they will become an integral part of the game. ",
		"A strange game. The only winning move is not to play... ",
		"Sometimes it may be better to keep an extra spell on the ground to maximize your spell destruction bonus at a later level. ",
		"Don't forget to rate the game in the android market place to let us know how we are doing. ",
		"Warning: It may be unsafe to play Pocket Quest while driving or operating heavy machinery. ",
		"Stores can be expensive. Sometimes it may be more beneficial to save your gold for the Klondike or Converter spells instead. ",
		"Try to pick races that compliment your characters abilities, such as the dwarf race for fighting classes. ",
		"Don't know what you are doing? Pick the tutorial level on the far left side of the level bar to get a grasp of the basics. ",
		"Some classes are better against certain enemies than other classes. Be sure to try them all out. ",
		"Try to choose a god that matches your classes playing style. ",
		"Confused about what to do or how something works? Check out the playerinfo section off the main menu. ",
		"This game is alot like your mom... I don't remember where I was going with that, but the punchline was hilarious. ",
		"There are alot of classes, spells, races, and levels to unlock, so keep playing! ",
		"Many small animals were intentionallly tickled forcefully in the making of this game. ",
		"Warning: It may be unsafe to play Pocket Quest while driving or operating heavy machinery. ",
		"There are 50 classes currently coded into this game. Have you unlocked them all? ",
		"Suggestions on making the game better? Email me at mauvemoonman@gmail.com. If I like it, I will add your likeness to the credits in future releases. "
		
};
}

